(deftemplate elemente (slot element) (slot pozitie))

(foreach ?elem (create$ a b c)
	(foreach ?poz (create$ 1 2)
    	(assert( elemente (element ?elem) (pozitie ?poz)))    
    )    
)

(defrule rezolvare
	(elemente (element a) (pozitie ?p1))    
    (elemente (element b) (pozitie ?p2 & ~?p1))
    
	(elemente (element a) (pozitie ?p1))    
    (elemente (element c) (pozitie ?p3 & ~?p1))
    
    (elemente (element b) (pozitie ?p1))    
    (elemente (element c) (pozitie ?p3 & ~?p1))
    =>
    (printout t "pozitie a=" ?p1 "  pozitie b="?p2 crlf)
	(printout t "pozitie a=" ?p1 "  pozitie c="?p3 crlf)
    (printout t "pozitie b=" ?p1 "  pozitie c="?p3 crlf)
	
    /*(printout t "(a,")*/
    
)

(facts)
(run)